﻿///*
// * StandardImageGridData
// * 
// * initial implementation : 20.9.2008
// *
// * Copyright (c) Adam Sida, asida@centrum.cz.
// * All rights reserved.
// * 
// * for license see Petra.Gis.License.txt
// */
//using System;
//using System.Collections.Generic;
//using Petra.Gis.Geometry.Support;
//using Petra.Gis.Geometry.GridSupport;
//using Petra.Gis.ImagingServices.Cit;
//using System.Windows.Media.Imaging;
//using System.IO;


//namespace Petra.Gis.DataServices
//{
//  class StandardImageGridData : GridData
//  {

//    public StandardImageGridData(string filename, BoundingBox bounds)
//    {
//      _bounds = bounds;
//      _dataLocation = filename;


//      FileStream fs = new FileStream(_dataLocation, FileMode.Open, FileAccess.Read);

//      string fileExtension = _dataLocation.Substring(_dataLocation.Length - 4);

//      switch (fileExtension.ToLower())
//      {
//        case ".tif":
//        case "tiff":
//          {
//            TiffBitmapDecoder d = new TiffBitmapDecoder(fs, BitmapCreateOptions.DelayCreation, BitmapCacheOption.OnDemand);
//            foreach (BitmapFrame f in d.Frames)
//              _frames.Add(new StandardFrame(f, bounds));
//          }
//          break;
//        case ".bmp":
//          {
//            BmpBitmapDecoder d = new BmpBitmapDecoder(fs, BitmapCreateOptions.DelayCreation, BitmapCacheOption.OnDemand);
//            foreach (BitmapFrame f in d.Frames)
//              _frames.Add(new StandardFrame(f, bounds));
//          }
//          break;
//        case ".jpg":
//          {
//            JpegBitmapDecoder d = new JpegBitmapDecoder(fs, BitmapCreateOptions.DelayCreation, BitmapCacheOption.OnDemand);
//            foreach (BitmapFrame f in d.Frames)
//              _frames.Add(new StandardFrame(f, bounds));
//          }
//          break;
//        case ".png":
//          {
//            PngBitmapDecoder d = new PngBitmapDecoder(fs, BitmapCreateOptions.DelayCreation, BitmapCacheOption.OnDemand);
//            foreach (BitmapFrame f in d.Frames)
//              _frames.Add(new StandardFrame(f, bounds));
//          }
//          break;
//        case ".gif":
//          {
//            GifBitmapDecoder d = new GifBitmapDecoder(fs, BitmapCreateOptions.DelayCreation, BitmapCacheOption.OnDemand);
//            foreach (BitmapFrame f in d.Frames)
//              _frames.Add(new StandardFrame(f, bounds));
//          }
//          break;
//        case ".cit":
//          {
//            CitBitmapDecoder d = new CitBitmapDecoder(fs, BitmapCreateOptions.DelayCreation, BitmapCacheOption.Default);
//            foreach (BitmapFrame f in d.Frames)
//              _frames.Add(new StandardFrame(f, bounds));
//          }
//          break;
//        default:
//          throw new NotImplementedException();
//      }

//    }




//    public override BoundingBox GetEnvelope()
//    {
//      return _bounds ;
//    }




//    public override bool IsGridWithOverviews
//    {
//      get { return false; }
//    }

//  }
//}
